import { app, BrowserWindow, ipcMain, Menu} from 'electron'

/**
 * Set `__static` path to static files in production
 * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-static-assets.html
 */
if (process.env.NODE_ENV !== 'development') {
  global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')
}
 
let mainWindow;
// let Menu = new Menu;

// 主页面
const winURL = process.env.NODE_ENV === 'development'
  ? `http://localhost:9080`
  : `file://${__dirname}/index.html`

function createWindow() {
  // 关闭菜单栏
  // Menu.setApplicationMenu(null)
  //创建浏览器窗口
  mainWindow = new BrowserWindow({
    height: 563,
    title: '微云客',
    icon: 'static/img/logo.png',
    useContentSize: true,
    width: 1000,
    show: false,
    webPreferences: {
      webSecurity: false,
      nodeIntegration: true
    }
  })

  mainWindow.maximize()
  mainWindow.show()

  mainWindow.loadURL(winURL)

  mainWindow.webContents.closeDevTools()

  //与子页面建立通信
  ipcMain.on('close', e => {
    mainWindow.close();
  });

  // 关闭window时触发下列事件.
  mainWindow.on('closed', () => {
    mainWindow = null;
    //这个地方很关键，不要放到close中去关闭，不然打包后关闭客户端会报错；
  })

}

// 当 Electron 完成初始化并准备创建浏览器窗口时调用此方法
app.on('ready', () => {
  createWindow();
})

// 所有窗口关闭时退出应用.
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  // macOS中点击Dock图标时没有已打开的其余应用窗口时,则通常在应用中重建一个窗口
  if (mainWindow === null) {
    createWindow();
  }
})
 
  //获得打印机列表
  ipcMain.on('getPrinters', () => {
    const printers = mainWindow.webContents.getPrinters();
    mainWindow.send('printName', printers)
  })
  



